思路:如果数据x是负数,那么就不会是回文数据,如果数据小于10,就肯定是回文,然后将数据反转,判断是否相等。
方法一:通过for循环反转,效率高
public boolean isPalindrome(int x) {
if(x<0)return false;
if(x<10)return true;
String xStr = String.valueOf(x).toString();
String reverseX = "";
int maxIndex = xStr.length()-1;
for (int i=maxIndex;i>=0;i--){
reverseX+=xStr.charAt(i);
}
if(xStr.equals(reverseX)){
return true;
}
return false;
}
方法二:利用StringBuffer提供的方法反转,效率相对低一些
public boolean isPalindrome(int x) {
if(x<0)return false;
if(x<10)return true;
String xStr = String.valueOf(x).toString();
StringBuffer stringBuffer = new StringBuffer(xStr);
String reverse = stringBuffer.reverse().toString();
if(xStr.equals(reverse)){
return true;
}
return false;
}